//
//  ZQWelcome.swift
//  新浪微博
//
//  Created by admin on 2020/7/20.
//  Copyright © 2020 huami. All rights reserved.
//

import UIKit
import SDWebImage
// 欢迎
class ZQWelcomeView: UIView {
    @IBOutlet weak var iconView: UIImageView!
    @IBOutlet weak var tipLabel: UILabel!

    @IBOutlet weak var bottomCons: NSLayoutConstraint!

    class func welcomeView() -> Self {
        let nib = UINib(nibName: "ZQWelcomeView", bundle: nil )
        let v = nib.instantiate(withOwner: nil, options: nil)[0] as! Self
        return v
    }

    override func awakeFromNib() {
        super.awakeFromNib()

        // 1.URL
        guard let urlString = ZQNetWorkManager.shared.userAccount.avatar_large,
            let url = URL(string: urlString) else {
                return
        }

        // 2.设置头像
        // 如果不指占位图像，之前设置的图像会被情况
        iconView.setImageWith(url, placeholderImage: #imageLiteral(resourceName: "avatar_default_big"))
        iconView.layer.cornerRadius = iconView.bounds.width  * 0.5
        iconView.layer.masksToBounds = true
    }

    required init?(coder: NSCoder) {
        super.init(coder: coder)
        // initcoder 只是刚刚从xib的二进制文件将视图数据加载完成
        // 还没有和代码连线建立起关系，所以开发时，千万不要这个方法里处理UI
    }

    /// 视图被添加到 window 上，表示视图已经显示
    override func didMoveToWindow() {
        super.didMoveToWindow()

        // 视图使用自动布局来设置的，只是设置了约束
        // - 当视图被添加到窗口时，根据父视图的大小，计算约束值，更新控件的位置
        // - layoutIfNeeded 会直接按照当前的约束直接更新空间的位置
        // - 执行之后，控件所在的位置，就是xib的位置
        self.layoutIfNeeded()

        bottomCons.constant = bounds.size.height - 200
        // 如果控件们的 frame 还没有计算好，所有的约束会一起进行动画
        UIView.animate(withDuration: 1.0,
                       delay: 0,
                       usingSpringWithDamping: 0.7,
                       initialSpringVelocity: 0,
                       options: [],
                       animations: {
                        // 更新约束
                        self.layoutIfNeeded()
        }) { (_) in
            UIView.animate(withDuration: 1.0, animations: {
                self.tipLabel.alpha = 1
            }) { (_) in
                self.removeFromSuperview() 
            }
        }
    }
}
